home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nothing but Tetris
/
Nothing but Tetris.iso
/
amiga
/
super_caztri_ii
/
autoexec.amos
/
autoexec.amosSourceCode
next >
Wrap
AMOS Source Code
|
1994-10-27
|
12KB
|
501 lines
Set Buffer 10
' ********* Startup *******
Randomize Timer
Key Speed 5,5
K=22
Led Off
Dim PF(15,22),X(K,3),Y(K,3),CO(K),N(K)
Global N$,FT,CL,CO()
For T=0 To 15 : PF(T,22)=1 : Next
For T=0 To 22 : PF(0,T)=1 : PF(15,T)=1 : Next
For G=2 To K : Read CO(G)
For T=1 To 3 : Read X(G,T),Y(G,T) : Next :
Read N(G)
Next
CO(0)=9
Screen Open 0,320,256,32,0
Flash Off
Curs Off
Hide On
Do
Load "CazTri:mentre",3
Load Iff "CazTri:pictochange"
Music 1
Clear Key
KW
Load Iff "CazTri:screentochange"
Clear Key
Key Speed 10,10 : Paper 0 : Pen 2
Locate 12,22 : CINPUT["'abcdefghijklmnopqrstuvwxyz",5]
Key Speed 5,3
' ****************** Livello 1 **********************
Erase 3
PUNTI=0 : CULO=0 : GU=1
Restore 101
Repeat
Read L,MAZ,LINE,PAZ$
If PAZ$=N$
GU=L
End If
Until PAZ$="."
Load "base1M",3
Music 1
Repeat
Mvolume 63
Restore GU+100
Gosub NANO
Read L,MAZ,LINE,PAZ$
If MAZ=0
Gosub FINE : CULO=2
Else
Load Iff "CazTri:picture"
Ink 7 : Bar 25,50 To 134,70 : Ink 29 : Box 25,50 To 134,70
Locate 4,7 : Pen 1 : Paper 7 : Print " GET READY! " : Wait 150
If L=2
For T=10 To 21 : For G=1 To 2 : PF(G,T)=Rnd(6)+2 : PF(15-G,T)=Rnd(6)+2 : Next : Next
End If
Gosub L*1
Gosub RESTO
Paper 10 : Pen 1 : Locate 12,24 : Print L : Paper 12 : Locate 11,26 : Print LINE;" "
Gosub MAIN
End If
Until CULO>0
FINAL:
If CULO=1
Ink 7 : Bar 25,50 To 134,70 : Ink 29 : Box 25,50 To 134,70
Locate 4,7 : Pen 1 : Paper 7 : Mvolume 10
Volume %1111,63
Print " GAME OVER! " : Sam Play 8,1,12000 : Wait 250
End If
Erase 3
Load "Dream",3
Mvolume 63
Music 1
Paper 0 : Cls
Load Iff "totalefinepic"
Clear Key
Locate 16,18 : Paper 0 : Pen 5 : Print L
Locate 13,20 : Pen 6 : Print PUNTI
KW
Erase 3
Clear Key
Loop
End
' ***************** MAIN PROGRAM !!!!!!! *********************
MAIN:
Randomize Timer
DL=Rnd(6)+2 : Ink 9
Repeat
DF:
CL=DL
DL=Rnd(6)+2
If CL=9 Then Goto DF
X=9 : Y=1 : CONTO=0 : A=0 : Ink 9
Bar 180,120 To 219,154
LL=CL : CL=DL : FOTTO[24,17] : For T=1 To 3 : FOTTO[24+X(DL,T),17+Y(DL,T)] : Next : Swap LL,CL
Paper 2 : Pen 1 : Locate 32,24 : Print PUNTI
If L=8 and LINE=1 Then MAZ=2
Clear Key
Repeat
A$=Inkey$
If A$="a" Then Music Off
If A$="m" Then Music 1
If(A$=" ") or(A$=".") or((Joy(1) and 2)=2) Then CONTO=CONTO+MAZ/2
If((A$=Chr$(29)) or(A$="z") or(A$="q") or((Joy(1) and 4)=4)) and(PF(X-3,Y)=0) and(PF(X-3+X(CL,1),Y+Y(CL,1))=0) and(PF(X-3+X(CL,2),Y+Y(CL,2))=0) and(PF(X-3+X(CL,3),Y+Y(CL,3))=0)
Paper 9 : Locate X,Y : Print " "
Gosub D
Dec X
Gosub S
Wait 2
End If
If((A$=Chr$(28)) or(A$="x") or(A$="w") or((Joy(1) and 8)=8)) and(PF(X-1,Y)=0) and(PF(X-1+X(CL,1),Y+Y(CL,1))=0) and(PF(X-1+X(CL,2),Y+Y(CL,2))=0) and(PF(X-1+X(CL,3),Y+Y(CL,3))=0)
Gosub D
Inc X
Gosub S
Wait 2
End If
If(A$=Chr$(30)) or(A$=Chr$(31)) or(A$=Chr$(13) or((Joy(1) and 16)=16))
Gosub O
If H=0
Gosub D : CL=N(CL)
End If
If H<>0
'---------------- pezzi gialli e rossi-----------
If N(CL)=5 or N(CL)=2 or N(CL)=21 or N(CL)=22 or N(CL)=6
X1=X : Inc X
Gosub O
If H=0
Dec X
Gosub D : Inc X : CL=N(CL)
Else X=X1
End If
End If
If N(CL)=16 or N(CL)=10 or N(CL)=19
X1=X : Dec X
Gosub O
If H=0
Inc X
Gosub D : Dec X : CL=N(CL)
Else X=X1
End If
End If
'----------------------pezzo azzurro
'-----------------------pezzo blu 1
If N(CL)=13
X1=X : Inc X
Gosub O
If H=0
Dec X
Gosub D : Inc X : CL=N(CL)
Else
Inc X
Gosub O
If H=0
Dec X : Dec X : Gosub D : Inc X : Inc X
CL=N(CL)
Else X=X1-1
Gosub O
If H=0
Inc X : Gosub D : Dec X : CL=N(CL)
Else X=X1
End If
End If
End If
End If
'----------------------pezzo blu 2
If N(CL)=4
X1=X : Dec X
Gosub O
If H=0
Inc X
Gosub D : Dec X : CL=N(CL)
Else
Dec X
Gosub O
If H=0
Inc X : Inc X : Gosub D : Dec X : Dec X
CL=N(CL)
Else X=X1+1
Gosub O
If H=0
Dec X : Gosub D : Inc X : CL=N(CL)
Else X=X1
End If
End If
End If
End If
End If
Gosub S
Wait 4
End If
C=PF(X-2,Y+1)
If C=0 Then C=PF(X-2+X(CL,1),Y+1+Y(CL,1))
If C=0 Then C=PF(X-2+X(CL,2),Y+1+Y(CL,2))
If C=0 Then C=PF(X-2+X(CL,3),Y+1+Y(CL,3))
Inc CONTO
If CONTO>MAZ
CONTO=0
Gosub D
Inc Y
If L=21 and X>5 and Rnd(5)=1
Dec X
Gosub O
If H<>0
Inc X
End If
End If
If L=22 and X<14 and Rnd(5)=1
Inc X
Gosub O
If H<>0
Dec X
End If
End If
Gosub S
End If
Until C<>0
If Y=1 Then CULO=1 : Return
PF(X-2,Y)=CL
Gosub S
For T=1 To 3
PF(X-2+X(CL,T),Y+Y(CL,T))=CO(CL)
Next
If V>Y Then V=Y
Add PUNTI,CO(CL)-1
For T=21 To 2 Step -1 : H=0
For G=1 To 14
If PF(G,T)<2 Then H=1
Next
If H=0 Then Gosub RIGA
Next
'
'
'
'
Until LINE<=0
'********************** fine quadro *********************
Mvolume 20
Sam Play 8,3,13000
For T=0 To 21
For G=1 To 14
FT=1 : FOTTO[G+2,T]
Next
Next
Clear Key
Paper 0
Wait 100
Cls
Inc GU : Restore GU+100
If L<>26
Load Iff "finepic"
Paper 0
Pen 31
Locate 30,11 : Print L
Pen 2
Locate 12,22 : Read L,MAZ,LINE,MAZ$ : Print MAZ$
KW
Else Read L
End If
Restore GU+100
Return
End
'-----------------------------------------------------------------
'********************** FINE ***************************
RIGA:
Sam Play 8,2,16000
For G=1 To 3
Paper 31 : CL=7
For S=1 To 14 : FOTTO[S+2,T] : Next
Paper 1 : CL=1
For S=1 To 14 : FOTTO[S+2,T] : Next
Next
PUNTI=PUNTI+30
For S=T To V-2 Step -1
If S>0
For G=1 To 14
PF(G,S)=PF(G,S-1)
CL=PF(G,S)
FOTTO[G+2,S]
Next
End If
Next
Inc T
Inc V
Dec LINE
If L>8 and L<17 and MAZ>1 Then Dec MAZ
If L>17 and L<21 and LINE<12 Then Dec MAZ
If L=26 Then Dec MAZ
If LINE>=0 Then Paper 12 : Pen 1 : Locate 11,26 : Print LINE;" "
Return
RESTO:
Ink 9
Bar 24,0 To 135,176
For S=1 To 21
For G=1 To 14
If PF(G,S)=0 Then CL=0 Else CL=PF(G,S)
FOTTO[G+2,S]
Next
Next
Return
NANO:
For S=1 To 21
For G=1 To 14
PF(G,S)=0
Next
Next
Return
'
'
O:
H=0
For T=1 To 3
If X-2+X(N(CL),T)>=0 and X-2+X(N(CL),T)<16
If PF(X-2+X(N(CL),T),Y)>0
H=1
End If
Else H=1
End If
Next
Return
'
'
S:
FOTTO[X,Y]
For T=1 To 3 : X1=X+X(CL,T) : Y1=Y+Y(CL,T)
If Y+Y(CL,T)>=0 Then FOTTO[X1,Y1]
Next
Return
D:
Paper 9 : Locate X,Y : Print " "
For T=1 To 3
If Y+Y(CL,T)>=0 Then Locate X+X(CL,T),Y+Y(CL,T) : Print " "
Next
Return
Data 2,-1,0,1,0,1,-1,11
Data 3,0,-1,1,-1,1,0,3
Data 4,-1,0,1,0,2,0,12
Data 5,-1,-1,-1,0,1,0,15
Data 6,-1,0,0,-1,1,0,18
Data 7,1,-1,1,0,0,1,21
Data 8,0,-1,1,0,1,1,22
Data 2,0,-1,0,1,1,1,2
Data 2,1,0,-1,0,-1,1,9
Data 2,-1,-1,0,-1,0,1,10
Data 4,0,-1,0,1,0,2,13
Data 4,-2,0,-1,0,1,0,14
Data 4,0,-2,0,-1,0,1,4
Data 5,0,-1,0,1,-1,1,16
Data 5,-1,0,1,0,1,1,17
Data 5,0,1,0,-1,1,-1,5
Data 6,0,-1,0,1,-1,0,19
Data 6,0,1,-1,0,1,0,20
Data 6,0,-1,0,1,1,0,6
Data 7,-1,0,0,1,1,1,7
Data 8,1,0,0,1,-1,1,8
1 V=21
2 V=10 : Return
3 PF(1,16)=5 : PF(14,16)=5 : PF(3,17)=4 : PF(12,17)=4 : PF(5,18)=3 : PF(10,18)=3
PF(2,19)=7 : PF(13,19)=7 : V=15
Return
4 V=21 : Return
5 For T=12 To 21 : PF(7,T)=4 : PF(8,T)=4 : Next : V=10
Return
6 For T=1 To 14 : PF(T,14)=1 : Next : V=10
Return
7 For T=17 To 21
For G=1 To 14 : A=Rnd(50)
If A<2 or A>9 Then A=0
PF(G,T)=A
Next
Next
V=16
Return
8 For T=7 To 21
For G=1 To 14 : A=Rnd(6)+2
PF(G,T)=A
Next
Next
V=6
Return
9 V=21 : Return
10 For T=0 To 7
For G=0 To T
PF(G+1,T+14)=3
Next : Next
V=13
Return
11 For T=0 To 7
For G=0 To T
PF(G+1,T+14)=2
PF(14-G,T+14)=2
Next : Next
V=14
Return
12 For T=17 To 21
PF(1,T)=1 : PF(14,T)=1
Next
V=16
Return
13 For T=10 To 21 : PF(7,T)=4 : PF(8,T)=4 : Next
V=9
Return
14 For T=17 To 21
For G=1 To 14 : A=Rnd(40)
If A<2 or A>9 Then A=0
PF(G,T)=A
Next
Next
V=16
Return
15 For T=1 To 14 : PF(T,19)=1 : Next
For T=1 To 14 : PF(T,18)=1 : Next
For T=1 To 14 : PF(T,17)=1 : Next
For T=1 To 3 : PF(T+2,21)=1 : PF(13-T,21)=1 : Next
For T=1 To 5 : PF(T+1,20)=1 : PF(14-T,20)=1 : Next
For T=1 To 3 : PF(T+2,15)=1 : PF(13-T,15)=1 : Next
For T=1 To 5 : PF(T+1,16)=1 : PF(14-T,16)=1 : Next
For T=12 To 20 : PF(7,T)=5 : PF(8,T)=5 : Next
PF(7,10)=2 : PF(8,10)=2 : PF(8,11)=2 : PF(7,11)=2
V=14
Return
16 For T=1 To 14 : PF(T,12)=1 : Next : V=10
Return
17 PF(1,1)=2 : PF(2,1)=3 : PF(3,1)=4 : PF(4,1)=5 : PF(5,1)=6
PF(14,1)=2 : PF(13,1)=3 : PF(12,1)=4 : PF(11,1)=5 : PF(10,1)=6
V=3
Return
18 For T=1 To 2 : PF(1,T)=2 : PF(2,T)=3 : PF(3,T)=4 : PF(4,T)=5 : PF(5,T)=6
PF(14,T)=2 : PF(13,T)=3 : PF(12,T)=4 : PF(11,T)=5 : PF(10,T)=6
Next
V=3
Return
19 PF(1,1)=2 : PF(2,2)=3 : PF(3,1)=4 : PF(4,2)=5 : PF(5,1)=6
PF(14,2)=2 : PF(13,1)=3 : PF(12,2)=4 : PF(11,1)=5 : PF(10,2)=6
V=3
Return
20 For T=1 To 3 : PF(1,T)=2 : PF(3,T)=3 : PF(5,T)=4
PF(14,T)=2 : PF(12,T)=4 : PF(10,T)=6
Next
V=3
Return
21
22
23
24
V=21 : Return
25 V=21 : PF(7,15)=1 : Return
26 V=21 : Return
LIVELLI:
101 Data 1,10,20,""
102 Data 2,6,12,"MELON"
103 Data 3,12,15,"LEMON"
104 Data 4,4,8,"NEMOL"
105 Data 5,8,20,"RAZOR"
106 Data 6,12,15,"POLKA"
107 Data 7,8,15,"GHOST"
108 Data 8,8,16,"CYBER"
109 Data 9,9,12,"CEBIT"
110 Data 10,10,12,"BLAZE"
111 Data 11,12,13,"OZONE"
112 Data 12,16,13,"COMAX"
113 Data 13,16,12,"REBEL"
114 Data 14,12,14,"ZAPPA"
115 Data 15,18,14,"COBRA"
116 Data 16,18,15,"CHAOS"
117 Data 17,10,25,"CREDO"
118 Data 18,14,20,"RELAY"
119 Data 19,14,22,"CRACK"
120 Data 20,14,20,"SONIK"
121 Data 21,8,5,"BYTES"
122 Data 22,8,5,"ABYSS"
123 Data 23,5,40,"FAITH"
124 Data 24,4,80,"ATARI"
125 Data 25,1,3,"AMIGA"
126 Data 26,100,99,"MADO'"
127 Data 27,0,0,"."
FINE:
Music 1
Load Iff "CazTri:propriofinepic"
KW
Return
Procedure FOTTO[X,Y]
XX=X*8+1 : YY=Y*8+1
Ink CO(CL)
If FT=1 Then Ink 16
Bar XX,YY To XX+6,YY+6
FT=0
End Proc
Procedure CINPUT[NN$,N]
N$=""
Repeat
A$=Inkey$
If(A$=Chr$(8)) and(Len(N$)>0) Then Print Chr$(8);" ";Chr$(8); : N$=Left$(N$,Len(N$)-1)
If(Instr(NN$,A$)>0) and(Len(N$)<N) Then Print Upper$(A$); : N$=N$+Upper$(A$)
Until(A$=Chr$(13))
End Proc
Procedure KW
Repeat
A=Joy(1)
B$=Inkey$
Until(A=16) or(B$<>"")
End Proc